Static Analysis of String Manipulations in Critical Embedded C Programs
نویسندگان
چکیده
This paper describes a new static analysis to show the absence of memory errors, especially string buffer overflows in C programs. The analysis is specifically designed for the subset of C that is found in critical embedded software. It is based on the theory of abstract interpretation and relies on an abstraction of stores that retains the length of string buffers. A transport structure allows to change the granularity of the abstraction and to concisely define several inherently complex abstract primitives such as destructive update and string copy. The analysis integrates several features of the C language such as multi-dimensional arrays, structures, pointers and function calls. A prototype implementation produces encouraging results in early experiments.
منابع مشابه
Static Analysis of Run-Time Errors in Embedded Critical Parallel C Programs
We present a static analysis by Abstract Interpretation to check for run-time errors in parallel C programs. Following our work on Astrée, we focus on embedded critical programs without recursion nor dynamic memory allocation, but extend the analysis to a static set of threads. Our method iterates a slightly modified non-parallel analysis over each thread in turn, until thread interferences sta...
متن کاملThe Verification Grand Challenge and Abstract Interpretation
Interpretation is a theory of approximation of mathematical structures, in particular those involved in the semantic models of computer systems [4,10,11]. Abstract interpretation can be applied to the systematic construction of methods and effective algorithms to approximate undecidable or very complex problems in computer science. The scope of application is rather large e.g. from type inferen...
متن کاملComing out of the niche?
The strongest successes of static analysis so far have been, on the one hand, sound analysis on safety-critical embedded systems, a rather niche market, on the other hand static analysis for finding bugs in more ordinary programs. Can the gap be bridged?
متن کاملStatic Analysis by Abstract Interpretation of Sequential and Multithreaded Programs
In the realm of embedded critical systems, it is crucial to guarantee the correctness of programs before they are deployed. Static analyzers can help by detecting at compile-time potentially erroneous program behaviors: they perform sound over-approximations to achieve an efficient analysis while not missing any potential behavior. We discuss the systematic design of such analyzers using abstra...
متن کاملMechanical Properties Analysis of Bilayer Euler-Bernoulli Beams Based on Elasticity Theory
This paper analyzes the effects of structures and loads on the static bending and free vibration problems of bilayer beams. Based on static mechanical equilibrium and energy equilibrium, the static and dynamic governing equations of bilayer beam are established. It is found that the value of the thickness ratio has a significant effect on the static and dynamic responses of the beam, and the st...
متن کامل